/**
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 * Universidad de los Andes (Bogotá - Colombia)
 * Departamento de Ingeniería de Sistemas y Computación
 * Proyecto SIMOV
 * @author af.valbuena84
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */

package webapplication1;

/**
 * Esta clase representa los arcos que conectan las vallas
 */
public class Arco 
{

    //-----------------------------------------------------------------
    // Atributos
    //-----------------------------------------------------------------

    /**
     * es el identificador del arco 
     */
    private String identificadorArco;

    /**
     * Es la valla origen
     */
    private String nodoOrigen;

    /**
     * Es la valla destino
     */
    private String nodoDestino;

    /**
     * Es el costo asociado a movilizarse de una valla a otra
     */
    private int costo;


    //-----------------------------------------------------------------
    // Constructores
    //-----------------------------------------------------------------

    /**
     * Crea un producto con la información básica.
     * @param nNodoOrigen nodo de oringen del nuevo arco utilizado para conectar las vallas.
     * @param nNodoDestino nodo de destino del nuevo arco utilizado para conectar las vallas.
     * @param nCosto costo que tiene el nuevo arco.
     * @param nIdentificadorArco es el identificador del nuevo arco.
     */
    public Arco(String nNodoOrigen, String nNodoDestino, int nCosto, String nIdentificadorArco)
    {
        nodoOrigen = nNodoOrigen;
        nodoDestino = nNodoDestino;
        costo = nCosto;
        identificadorArco = nIdentificadorArco;
    }

    //-----------------------------------------------------------------
    // Métodos
    //-----------------------------------------------------------------

    /**
     * Retorna el nodo origen del arco.
     * @return nodoOrigen.
     */
    public String darNodoOrigen()
    {
        return nodoOrigen;
    }

    /**
     * Retorna el nodo destino del arco.
     * @return nodoDestino.
     */
    public String darNodoDestino()
    {
        return nodoDestino;
    }

    /**
     * Retorna el costo del arco.
     * @return costo.
     */
    public int darCosto()
    {
        return costo;
    }

    /**
     * Retorna el identificador del arco.
     * @return identificadorArco.
     */
    public String darIdentificadorArco()
    {
        return identificadorArco;
    }

    /**
     * Cambia el nodo origen del arco
     * @param nNodoOrigen nuevo nodo origen
     */
    public void cambiarNodoOrigen(String nNodoOrigen)
    {
        nodoOrigen = nNodoOrigen;
    }

    /**
     * Cambia el nodo destino del arco
     * @param nNodoDestino nuevo nodo destino
     */
    public void cambiarNodoDestino(String nNodoDestino)
    {
        nodoDestino = nNodoDestino;
    }

    /**
     * Cambia el costo del arco
     * @param nCosto nuevo costo
     */
    public void cambiarCosto(int nCosto)
    {
        costo = nCosto;
    }
}
